#ifndef MINI_ENGINE_PHYSICALDEVICE
#define MINI_ENGINE_PHYSICALDEVICE
#include <optional>
#include <iostream>
using namespace std;
#include "QueueFamilies.h"
#include "Instance.h"

namespace mini_engine
{

    class PhysicalDevice
    {
    private:
        PhysicalDevice(/* args */);
        static PhysicalDevice *m_physicalDevice;
        bool isDeviceSuitable(VkPhysicalDevice device);
        class PhysicalDeviceDestruction
        {
        public:
            ~PhysicalDeviceDestruction();
        };

    public:
        static VkPhysicalDevice physicalDevice; // 物理设备
        static PhysicalDevice *getPhysicalDevice();
        void pickUpPhyiscalDevice();
        ~PhysicalDevice();
    };
}

#endif